Appunti sulla formattazione Markdown e pubblicazione con Pelican, il generatore di pagine statiche che alimenta questo sito.
Installazione
- Con Debian 9, Stable. Secca sul ferro.
- Con una Virtual Machine (con la versione stable di Python e Pelican).
- Con Docker.
apt install pelican markdown python3-pip
Configurazione
mkdir -p ~/Sites/yoursite.yourdominio
pelican-quickstart -p
Viene generata la cartella content
che deve conterrà i post.md
emacs ~/Sites/yoursite.yourdominio/content/primopost.md
Headers
Ogni post.md inizia con le definizioni:
Title: Prima viene il corvo
Date: 2019-02-31
Category: disco
Tags: Calvino, resistenza
Slug: 2018-einaudi-calvino-italo-prima-viene-il-corvo
Authors: Italo Calvino
Summary: Questo è il riassunto che verrà visualizzato nell'index e nei feed.
Titolo: Solo il campo: Titolo è necessario.
Data: la data definisco in pelicanconf come viene rappresentata, qui la indico in questo formato: 2019-02-31
che non si presta ad equivoci.
Categoria: Meglio individuare le categoria a priori. È possibile anche usare i folder per creare una categoria, ma preferisco indicarele direttamente negli header.
Tags: Le tags secondo me possono andare a pioggia e pazienza se sono rodondanti e ripetono anche qualche categoria. Per fortuna, non sono case-sensitive.
Authors: Come Authors posso mettere diversi autori separati da una virgola, o posso usare: "Author" se il sito, come in questo caso, ha un autore solo. Nel caso del mio sito personale infatti, cliccando sul nome dell'autore, invece che fornire la lista dei suoi post, si viene diretti a una pagina informazioni.
Slug: Lo slug serve a definire l'url della pagina, che altrimenti viene derivato dal titolo. Ad esempio mi piace che l'url contenga anno-riferimento-titolo-proposito (es. 2011-giornale-titoloarticolo-recensione)
Capita tre volte di nominare un post:
- Nel nome del file: post.md
- nel Titolo
- nell'url
Meglio farci un pensiero e trovare un metodo, ad esempio unificare nomefile
e slug
e andare giù piatti o creativi
con il titolo.
Ad esempio il post dell'articolo Hackmeeting 2010:
nomefile: 2010-ilmanifesto-hackmeeting-roma-scambio-e-libera-comunicazione.md
Title: Hackmeeting Roma (Scambio e libera comunicazione)
Slug: 2010-ilmanifesto-hackmeeting-roma-scambio-e-libera-comunicazione
Sintassi di scrittura
Il markdown si scrive come testo normale, supporta i seguenti marcatori:
*italico*
**grassetto*
# Capitoli
## Capitoletti
> evidenza
[TAB] codice
[TAB] #!python
righe numerate
Creare link
Link esterno
[chumbarolling](https://www.youtube.com/watch?v=tf7kDY1krw8)
Immagine
![foto]({attach}/images/immagine.jpg)
Link a un articolo interno al sito
[link a un articolo]({filename}/howto/pelican.md)
Link a una tag, categoria, autore
[link a una tag]({tag}pelican)
[link a una categoria]({category}disco)
[link a un autore]({author}Daniele Salvini)
Link a un file
[link a un file]({attach}/media/archive.zip)
[link a un file](/media/pubkey.asc.asc)
Tema
Tenere il tema default, usare un template, o scrivere il proprio tema.
Sviluppo
make newpost NAME='anno-riferimento-titolo-proposito'
make html
make serve
(goto) http://localhost:8000/
Pubblicazione
make clean
make publish
make rsync_upload